package com.qf.service.impl;

import com.qf.mapper.UserDao;
import com.qf.mapper.UserDaoImpl;
import com.qf.pojo.User;
import com.qf.utils.Constants;
import com.qf.service.UserService;
import com.qf.utils.MD5Utils;
import com.qf.utils.RandomUtils;

public class UserServiceImpl implements UserService {
    @Override
    public User login(String userName, String password) {
        //根据用户名到数据库查询数据
        UserDao userDao = new UserDaoImpl();
        User user = userDao.findByUserName(userName);

        //判断用户是否为空，若为空 用户名错误
        if (user == null){
            return  null;
        }
        //判断用户是否激活，若没有激活  不让登陆
        if(!Constants.USER_ACTIVE.equals(user.getStatus())){
            return  null;
        }
        //判断角色是否为消费者   若不是  不让登陆
        if(Constants.ROLE_ADMIN == user.getRole()){
            return  null;
        }
        //校验密码是否正确，使用md5将用户输入的密码加密，
        // 将加密后的密文与数据库中的密码文进行对比，
        // 如果一致密码正确，不一致，密码错误
        String s = MD5Utils.md5(password);
        if (s.equals(user.getPassword())){
            return user;
        }
        return null;
    }

    @Override
    public int addUser(User user) {
        String md5 = MD5Utils.md5(user.getPassword());
        user.setPassword(md5);

        user.setStatus(Constants.USER_ACTIVE);

        user.setRole(Constants.ROLE_CUSTOMER);

        user.setCode(RandomUtils.createActive());

        UserDao userDao = new UserDaoImpl();
        int count = userDao.addUser(user);

        return count;
    }
}
